package org.example.lease.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.example.lease.model.entities.*;
import org.example.lease.vo.attr.AttrValueVo;
import org.example.lease.vo.room.RoomItemVo;
import org.example.lease.vo.room.RoomQueryVo;

import java.util.List;

/**
 * @author 宋孟林
 * @description
 * @date: 2025/5/12 16:52
 */
public interface RoomInfoMapper extends BaseMapper<RoomInfo> {
    /**
     * 根据条件分页查询roomItemVo
     *
     * @param page        page
     * @param roomQueryVo vo
     * @return page ---> roomItemVo
     */
    IPage<RoomItemVo> pageRoomItemVo(@Param("page") IPage<RoomItemVo> page, @Param("roomQueryVo") RoomQueryVo roomQueryVo);

    /**
     * 根据房间id查询房间属性值VO
     *
     * @param id 房间id
     * @return list---->attrValueVo
     */
    List<AttrValueVo> selectRoomAttrValueVoByRoomId(Long id);

    /**
     * 根据房间id查询房间相关的配套信息
     *
     * @param id 房间id
     * @return 配套列表
     */
    List<FacilityInfo> selectRoomFacilityInfoByRoomId(Long id);

    /**
     * 根据房间id查询房间标签
     *
     * @param id id
     * @return 房间的标签集合
     */
    List<LabelInfo> selectRoomLabelInfoByRoomId(Long id);

    /**
     * 根据房间id查询房间的支持的支付方式
     *
     * @param id id
     * @return paymentTypeList
     */
    List<PaymentType> selectRoomPaymentTypeByRoomId(Long id);

    /**
     * 根据房间id查询房间可选租期列表
     *
     * @param id id
     * @return leaseTerm
     */
    List<LeaseTerm> selectLeaseTermByRoomId(Long id);
}




